package com.yf.exam.modules.tmpl.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yf.base.api.api.dto.BaseIdRespDTO;
import com.yf.base.api.api.dto.PagingReqDTO;
import com.yf.exam.modules.paper.dto.ext.PaperGroupExtDTO;
import com.yf.exam.modules.tmpl.dto.OpenAITemplQuDTO;
import com.yf.exam.modules.tmpl.dto.TmplDTO;
import com.yf.exam.modules.tmpl.dto.ext.TmplDetailDTO;
import com.yf.exam.modules.tmpl.dto.ext.TmplPreviewDTO;
import com.yf.exam.modules.tmpl.entity.Tmpl;

import java.util.List;

/**
* <p>
* 试卷业务类
* </p>
*
* @author 聪明笨狗
* @since 2021-04-25 13:59
*/
public interface TmplService extends IService<Tmpl> {

    /**
    * 分页查询数据
    * @param reqDTO
    * @return
    */
    IPage<TmplDTO> paging(PagingReqDTO<TmplDTO> reqDTO);

    /**
     * 保存详情
     * @param reqDTO
     * @return
     */
    BaseIdRespDTO save(TmplDetailDTO reqDTO);

    /**
     * 复制试卷
     * @param id
     * @return
     */
    BaseIdRespDTO copy(String id);

    /**
     * 预览试卷
     * @return
     */
    TmplPreviewDTO preview(String id);

    /**
     * 查找详情
     * @param id
     * @return
     */
    TmplDetailDTO findDetail(String id);

    /**
     * 查找试卷简略信息
     * @param id
     * @return
     */
    TmplDTO findSimpleInfo(String id);

    /**
     * 根据试卷ID查找生成考试试卷
     * @param id
     * @return
     */
    List<PaperGroupExtDTO> findForCreate(String id);

    /**
     * 根据ID删除考试
     * @param ids
     */
    void deleteByIds(List<String> ids);

    /**
     * 对接子路模型根据题库和试题创建试卷
     * @param openAITemplQuDTO
     * @return
     */
    BaseIdRespDTO openPaper(OpenAITemplQuDTO openAITemplQuDTO);
}
